#!/bin/bash
#------------------------------------------------------------------------------------
# wpl2m3u.sh
# guion para convertir una lista de reproducción del
# formato wpl al formato m3u.
# http://en.wikipedia.org/wiki/Windows_Media_Player_Playlist
# http://es.wikipedia.org/wiki/M3U
#------------------------------------------------------------------------------------

#------------------------------------------------------------------------------------
# ESTATICAS
#------------------------------------------------------------------------------------
ERROR_USAGE=1
#------------------------------------------------------------------------------------
#funcion para desplegar como usar el guion
#------------------------------------------------------------------------------------
function usage {
    echo -e "usage: \n $0 list.wpl"
    echo "Where \"list.wpl\" is the Windows Player List to be converted. 
The destination M3U list will be named list.m3u and placed in ~/playlists2/
"
}
#------------------------------------------------------------------------------------
#El guion recibe un solo parametro, el archivo a convertir.
#------------------------------------------------------------------------------------
if [ $# -eq 1 ] ; then
    LISTNAME=`basename "$1" .wpl`
    SOURCEPATH=`dirname "$1"`
#"/media/Media/Mi Música/"
    TARGETPATH=~/playlists/
#------------------------------------------------------------------------------------
# Crear un archivo temporal que contenga solamente los elementos
#de tipo "<media ..." del archivo original.
#------------------------------------------------------------------------------------
    grep "<media src" "$1"  | cut -f2 -d\" > temp.list
    sed -i -e 's,\\,\/,g' -e 's/\.\.\///g' temp.list
    sed -i "s/&apos;/'/g" temp.list
    sed -i 's/&amp;/\&/g' temp.list
    sed "s,^,$SOURCEPATH/,g" temp.list > "$TARGETPATH"/"$LISTNAME".m3u
    rm temp.list
    exit 0
fi
#------------------------------------------------------------------------------------
#Si no se recibieron parametros, mostrar ayudita sobre el uso del guion y salir
#con codigo de "error" 1.
#------------------------------------------------------------------------------------
usage
exit $ERROR_USAGE
